#include<iostream>
using namespace std;
#include<iostream>
using namespace std;
#include<memory>
class ParseOne
{
public:

	void printArgs()
	{
		cout << "\n";
	}

	template<class T, class ...Args>
	void printArgs(T&& value, Args&&...args)
	{

		cout << value << " ";
		printArgs(args...);
	}

};
class ParseTwo
{
public:
	template<class ...Args>
	void showArgs(Args&&...args)
	{
		int arr[] = { (print(args),0)... };
	}

	template<class T>
	void print(T&& t)
	{
		cout << t << " ";
	}
};
int main(void)
{
	auto parseOne = std::make_shared<ParseOne>();
	parseOne->printArgs(10, "zhangsam", true);

	std::shared_ptr<ParseTwo> parseTwo = std::make_shared<ParseTwo>();
	parseTwo->showArgs(10, "zhangsam", true);

	
	return 0;
}